今天收盤了。明天開盤,我要不要買某一檔股票?
這個問題聽起來很小,但你認真去拆,會發現要回答它得知道很多事。而這 30 天,我就是要把這些「要知道的事」一層一層變成可以自動更新的資料,最後用一套日頻回測把它們串起來。
先講我要蓋的東西:一條每天收盤後自己會跑、隔天早上吐出一張下單清單的產線。交易頻率設在日頻——收盤後算,隔天進場。不做當沖,不碰逐筆撮合。
那,明天要不要買,到底要知道哪些事?
最基本的一層:開高低收、成交量、成交金額、成交筆數。
它的問題不是難拿,是太好拿。每個人都看得到同一組數字,你能算的均線、KD、RSI,別人也都算得出來。純技術指標的日頻策略在台股很難有持續的優勢,原因不是指標沒用,是資訊沒有差異。
所以價量是地基,不是優勢來源。真正有機會拉開差距的是後面幾層。
不過這層有個台灣特有的細節值得先提:上市和上櫃是兩個不同的 API,欄位順序不一樣,而且 2008 年和 2024 年的欄位數量都不同。
這是我認為台股最被低估的資料。
台灣要求所有上市櫃公司在每月 10 日前公布上個月的營收。美股沒有這種制度,只有季報。也就是說,台股投資人拿得到的基本面資料,更新頻率是美股的三倍,而且延遲只有 10 天。
對日頻策略來說,這是罕見的優勢:一年有 12 次「全市場基本面同時更新」的時點,而不是 4 次。
我已經抓了一部分下來,2024 年 1 月有 2,116 家公司、36 個產業,而且資料裡自帶產業分類:
產業 yoy 中位數(家數 >= 15)
建材營造 86 家 +43.8%
鋼鐵工業 51 家 +31.9%
綠能環保 48 家 +30.8%
...
運動休閒 28 家 -0.1%
觀光餐旅 57 家 -4.9%
貿易百貨 18 家 -5.3%
看起來很好用對吧。全市場 yoy 中位數 +20.0%,73.7% 的公司正成長。景氣一片大好。
但這裡有個坑
隔一個月再看:
2024-01 2,116 家 yoy 中位數 +20.0% 正成長比例 73.7%
2024-02 2,114 家 yoy 中位數 -6.8% 正成長比例 41.1%
同樣一批公司,一個月之內從「七成三在成長」變成「不到一半在成長」。台灣經濟不會在 30 天內崩掉。
整片分布往左位移。原因是:
2023 年的農曆春節在 1 月 21 日,2024 年在 2 月 10 日。
2023 年 1 月因為過年只有少少的工作天,營收基期極低——所以 2024 年 1 月的 yoy 全面虛高。反過來,2024 年 2 月自己在過年,工作天少——所以 yoy 全面虛低。
把兩個月合起來看,累計 yoy 中位數是 +6.2%,這才是接近真相的數字。
這代表什麼?如果你在 2024 年 2 月 10 日(1 月營收剛公布)用「營收 yoy 排名前 50」來選股,你選到的有相當比例只是春節錯位造出來的假訊號。而你的回測會告訴你這個策略很棒,因為每年 1 月它都這樣「表現優異」一次。
農曆春節每年在國曆的位置都不同,這種錯位年年都在發生。這是台股月營收最基本、也最多人踩的坑,而且它不會出現在任何一份美股量化教材裡。
月營收要怎麼用才不會被季節性騙,會是這系列的重點之一。
第三層:現在市場是貪婪還是恐慌?
同樣一檔股票、同樣的技術面,在市場恐慌時和亢奮時買,結果完全不同。這一層的資料通常不在個股身上,在整個市場的集體行為裡。
最容易取得的代理指標是 VIX。我用手上抓好的 20 年資料分層看了一下——按 VIX 水位分組,看後續 20 個交易日 S&P 500 的表現:
VIX 水位 天數 後 20 日平均報酬 勝率
<15 極平靜 1,760 +0.57% 66.9%
15-20 1,628 +0.49% 64.6%
20-25 889 +0.73% 64.0%
25-30 431 +2.02% 71.7%
>30 恐慌 449 +1.71% 65.5%
恐慌的時候買,後續報酬反而比平靜的時候好三到四倍。這不是新發現,但用自己的資料親手算出來,感覺不太一樣。
(先聲明:這是單一維度的粗略分層,樣本有重疊,也沒有考慮進出成本。它是一個值得繼續研究的線索,不是策略。)
台股有自己的一套情緒指標,而且有些比 VIX 更直接:
• 三大法人買賣超 —— 外資、投信、自營商在買還是在賣
• 融資融券餘額 —— 散戶的槓桿水位,融資大增通常不是好事
• 上漲下跌家數 —— 市場的廣度,指數漲但下跌家數更多是警訊
• 成交金額 —— 量能萎縮的漲勢通常撐不久
這些交易所每天都公布,但都得自己去抓。目前這個專案還沒有,是 Day 5 到 Day 7 的工作。
台股有個特性:它有一段時間是「已知答案」的。
美股台灣時間凌晨收盤,台股早上 9 點才開。所以每天開盤前,你已經知道昨晚美股怎麼走了。
這件事對台股特別重要,因為:
• 台股是淺碟市場,外資買賣超對指數影響大
• 電子股佔加權指數的權重極高,而電子業高度連動美國半導體景氣
• 台積電同時在紐約掛 ADR,隔夜就先幫你反映了一次
所以「昨晚費半漲了 3%」這種資訊,在日頻策略裡是有意義的輸入。我已經把這些抓下來了:
^GSPC S&P 500 ^IXIC 納斯達克綜合 ^SOX 費城半導體
^DJI 道瓊工業 ^NDX 納斯達克 100 ^VIX 波動率指數
^RUT 羅素 2000 ^NYA 紐約綜合
2006 到 2026,八個指數,每一個都是完整的日線。
至於「費半隔夜漲跌對台股電子股隔天開盤到底有多少解釋力」——我還不知道,因為台股日線目前只跑過幾天測試。這是後面要驗證的事,而且我會把驗證過程寫出來,包括如果答案是「沒什麼用」。
第五層,也是最慢的一層。
日頻交易為什麼要看總經?因為總經決定的不是「明天漲不漲」,而是你現在應該用多大的部位在場上。同樣一套選股邏輯,在升息循環和降息循環裡該有的曝險完全不同。
台股會看的幾個:
• 台幣匯率 —— 跟外資買賣超高度相關,外資要買台股得先換台幣
• 美國利率與 FED 動向 —— 影響資金流向與電子業資本支出
• 景氣對策信號 —— 國發會每月公布,藍燈到紅燈,是台灣特有的綜合指標
• 出口訂單與 PMI —— 台灣是出口導向,這兩個是領先指標
這一層的挑戰跟前面完全不同:資料更新很慢、發布有延遲、而且經常事後修正。景氣對策信號是下個月底才公布上個月的,你回測時如果用「當月」對齊,就等於偷看了未來一個月。
總經資料的時間對齊會比想像中麻煩很多,我打算單獨花一天處理。
上面五層講完,你會有一堆想法:「營收 yoy 高的比較會漲」「VIX 高的時候該加碼」「昨晚費半大漲,今天買電子股」。
這些全部都只是猜想。沒有回測,它們就只是故事。
但日頻回測有它自己的難題,而且台股的難題特別多:
• 漲停買不到,跌停賣不掉。你的訊號說要買,但那檔今天鎖漲停,成交量只有 100 張——你買不到。回測若假設「一定成交」,會系統性高估績效,而且高估的部分正好都在最會漲的股票上。
• 一張是 1,000 股。總資金 100 萬要等權買 30 檔,每檔 3.3 萬。台積電一張要一百萬——你根本買不起。用「權重」做的回測完全看不到這件事。
• 手續費有最低 20 元。每檔 3 萬的單子,20 元等於 0.067%,比打完 6 折的手續費還高。高換手策略在小資金下會被這個吃掉。
• 證交稅賣出 0.3%。來回一趟成本大約 0.44%(以 6 折手續費計)。一個日頻策略如果平均持有 5 天,一年換手 50 次,光成本就是 22%。
這些不是細節,是決定「這個策略到底能不能做」的東西。所以回測引擎會是這系列後段的重頭戲,我打算花好幾天慢慢寫。
看到這裡你可能會想:台股資料到處都有免費 API,何必自己爬。
三個理由:
額度。回測要重跑幾十次,免費 API 一天幾百次請求不夠用。
下市股。多數免費 API 只給你「現在還在市場上」的股票。用這種清單去抓 20 年歷史,你的樣本裡全是活下來的公司——這叫存活者偏差,會讓回測結果系統性偏樂觀。
發布日。這是最關鍵的。API 給你「2024 年 3 月營收 = X」,但不會告訴你這個數字是 4 月 10 日才公布的。少了這個欄位,你就無法從架構上保證回測沒有偷看未來,只能靠自己每次寫程式時記得。